\section{nmatc.c File Reference}
\label{nmatc_8c}\index{nmatc.c@{nmatc.c}}


Server per il sistema NMAT Created on: Jan 9, 2010 Author: Marco Luisi.  
{\ttfamily \#include \char`\"{}nmatc.h\char`\"{}}\par
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int {\bf main} (int argc, char $\ast$$\ast$argv)
\item 
int {\bf parse} (message\_\-t $\ast$m)
\item 
int {\bf cmd\_\-check} (int tnum, char $\ast$$\ast$tokens)
\item 
int {\bf new\_\-check} (int tkns\_\-num, char $\ast$$\ast$tkns)
\item 
int {\bf tokenizer} (char $\ast$input\_\-line, char $\ast$$\ast$tokens)
\begin{DoxyCompactList}\small\item\em Spezza il buffer di input in token. \item\end{DoxyCompactList}\item 
int {\bf num\_\-check} (char $\ast$num, double $\ast$d)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Server per il sistema NMAT Created on: Jan 9, 2010 Author: Marco Luisi. \doxyref{nmatc.c}{p.}{nmatc_8c}

\begin{DoxyAuthor}{Author}
Marco Luisi 
\end{DoxyAuthor}


\subsection{Function Documentation}
\index{nmatc.c@{nmatc.c}!cmd\_\-check@{cmd\_\-check}}
\index{cmd\_\-check@{cmd\_\-check}!nmatc.c@{nmatc.c}}
\subsubsection[{cmd\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int cmd\_\-check (int {\em tnum}, \/  char $\ast$$\ast$ {\em tokens})}\label{nmatc_8c_a6a610e5e7abb216ac5564ac6bdc339ed}
Come prima cosa i vari casi possibili sono suddivisi in base al numero di token trovati da \doxyref{tokenizer()}{p.}{client__parse_8h_abd215590a8123ec173db72c1bf6c2883}. Per ogni numero di token sono possibili solo determinati comandi validi. Al termine di cmd\_\-check sono validati in modo sicuro tutti i comandi tranne new che necessita di un ulteriore controllo sui numeri \index{nmatc.c@{nmatc.c}!main@{main}}
\index{main@{main}!nmatc.c@{nmatc.c}}
\subsubsection[{main}]{\setlength{\rightskip}{0pt plus 5cm}int main (int {\em argc}, \/  char $\ast$$\ast$ {\em argv})}\label{nmatc_8c_a3c04138a5bfe5d72780bb7e82a18e627}
nmatc fornisce una interfaccia testuale per le operazioni gestite dal server nmats. \index{nmatc.c@{nmatc.c}!new\_\-check@{new\_\-check}}
\index{new\_\-check@{new\_\-check}!nmatc.c@{nmatc.c}}
\subsubsection[{new\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int new\_\-check (int {\em tkns\_\-num}, \/  char $\ast$$\ast$ {\em tkns})}\label{nmatc_8c_ae5c89c2f88c5c4b9724909a60ed4cd5c}
new\_\-check controlla la validità dei numeri della matrice che si vuole creare

In caso di errore restituisce -\/1 Memorizza nella struct messaggio la lunghezza di righe e colonne e l'array di double. \index{nmatc.c@{nmatc.c}!num\_\-check@{num\_\-check}}
\index{num\_\-check@{num\_\-check}!nmatc.c@{nmatc.c}}
\subsubsection[{num\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int num\_\-check (char $\ast$ {\em num}, \/  double $\ast$ {\em d})}\label{nmatc_8c_a4a86b527b7eba897c28634cf9600e8ba}

\begin{DoxyParams}{Parameters}
\item[{\em num}]\item[{\em d}]\end{DoxyParams}
\begin{DoxyReturn}{Returns}
intero per segnalare l'esito della conversione. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
\item[{\em 0}]se è non è presente il terminatore di riga. \item[{\em 1}]se è presente il terminatore di riga. \item[{\em -\/1}]se è stato rilevato un errore. \end{DoxyRetVals}
\index{nmatc.c@{nmatc.c}!parse@{parse}}
\index{parse@{parse}!nmatc.c@{nmatc.c}}
\subsubsection[{parse}]{\setlength{\rightskip}{0pt plus 5cm}int parse (message\_\-t $\ast$ {\em m})}\label{nmatc_8c_a88ac1ca1887c495fbb82b29f1b6fc181}
La fuzione parse provvede a effettuare il parsing dell'input dell'utente. -\/bufferizzazione input -\/creazione array di token a partire dal buffer -\/tramite validate si controlla la correttezza dell'input e quale comando è stato impartito -\/se è necessario inviare un msg viene chiamata la funzione msetup; -\/se in uno qualsiasi dei passaggi di \doxyref{parse()}{p.}{nmatc_8c_a88ac1ca1887c495fbb82b29f1b6fc181} viene rilevato un errore, si restituisce -\/1 \index{nmatc.c@{nmatc.c}!tokenizer@{tokenizer}}
\index{tokenizer@{tokenizer}!nmatc.c@{nmatc.c}}
\subsubsection[{tokenizer}]{\setlength{\rightskip}{0pt plus 5cm}int tokenizer (char $\ast$ {\em input\_\-line}, \/  char $\ast$$\ast$ {\em tokens})}\label{nmatc_8c_a4466c3148de28cf89bf722bb3fb21987}


Spezza il buffer di input in token. tokenizer riceve in input il puntatore a una stringa buffer su cui chiama iterativamente la funzione strtok con lo spazio come separatore.


\begin{DoxyParams}{Parameters}
\item[{\em input\_\-line}]puntatore al buffer da spezzare. \item[{\em tokens}]puntatore all'array di char$\ast$ per i tokens.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
numero di tokens. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
\item[{\em -\/1}]in caso di errore. \end{DoxyRetVals}


se non ci sono token esce subito con codice d'errore 